/*
 * pileIdentifiants.h
 *
 *  Created on: 28 nov. 2011
 *      Author: arthur
 */

#ifndef PILEIDENTIFIANTS_H_
#define PILEIDENTIFIANTS_H_

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "variableEtFonction.h"

typedef struct {
	int maxFct, crtFct, maxVar, crtVar;
	int * fctLvls, *varLvls;
	fonction ** fctPtrs;
	variable **varPtrs;
} pileIdentifiants;

pileIdentifiants * creerPileId();
void libererPileId(pileIdentifiants * pI);
void ajoutVariable(pileIdentifiants * pI, variable * varPtr, int varLvl);
void ajoutFonction(pileIdentifiants * pI, fonction * fctPtr, int fctLvl);
variable * retrouverVariable(pileIdentifiants * pI);
fonction * retrouverFonction(pileIdentifiants * pI);
void supprimerNiveau(pileIdentifiants * pI, int lvl);
int variableExisteAuNiveau(pileIdentifiants * pI, int lvl);
int fonctionExisteAuNiveau(pileIdentifiants * pI, int lvl);
void afficherPile(pileIdentifiants * pI);

#endif /* PILEIDENTIFIANTS_H_ */
